
#pragma once

namespace AVUI {

class FrugalMap : public Object
{
public:
    void GetKeyValuePair(int index, int* pKey, Object** ppValue);
 
    int get_Count();
    Object* GetItemAt(int key);
    void SetItemAt(int key, Object* pValue);
    void RemoveEntry(int key);

    typedef void (*FrugalMapIterationCallback)(Object* pValue);
    void Iterate(FrugalMapIterationCallback callback);

    struct Entry
    {
        int Key;
        TRefCountedPtr<Object> Value;
    };
    ItemStructList<Entry> m_entries;
};

};


